home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
BOI200P.ZIP
/
LIBRARY.DOC
< prev
next >
Wrap
Text File
|
1992-12-14
|
38KB
|
873 lines
BOI 2.00 Procedure and Function Library 12/15/92
BBS Onliner Interface 2.00 (Pascal)
(C) 1992 Andrew J. Mead
All Rights Reserved.
Contact:
PO BOX 1155
Chapel Hill, NC 27514-1155
USA
or
1:3641/417 FidoNet 75:7919/417 DoorNet
#1@9952 WWIVnet #1@9395 VirtualNet
Turbo Pascal and TP are registered trademarks of Borland International.
Borland Pascal and BP are registered trademarks of Borland International.
This document contains two sections. The first defines all public
procedures and functions. The second lists the private procedures and
functions of each unit.
Sample entry:
Procedure DECLARATION classification UNIT
- argument listing (what this argument is)
This is what this procedure does. This replaces this other Turbo
procedure. A code sample for this procedure may follow.
Public Procedures and Functions
Procedure ABORTGAME housekeeping SUPPORT
- byte (minimum remote screen size in lines)
AbortGame is provided as a way to alert the remote user that their
screen does not appear to be large enough to use the door. This
procedure will initiate the programs exit procedure chain.
Procedure ASYNCINT : Interrupt communications ASYNC
AsyncInt is the internal asynchronious communications interrupt
handler. This procedure should never, ever be called directly.
It is publicly declared because, for some reason, it doesn't seem
to work otherwise.
Function CARRIER : boolean communications ASYNC
Carrier returns true if carrier is detected, the program is being
run in local mode, or the carrier detect override command line
switch was used. This function is designed for internal BOI usage.
If you find your program needs to access it, I recommend writing
a shell procedure or function and placing it in IOLib.
Procedure CHANGECOLOR video IOLIB
- word (remote and local attributes)
ChangeColor allows you to set both remote and local text attributes
at once. This procedure is usually used as a restore operation.
For general use you will probably want to use IOLib.PortBackground,
IOLib.PortColor, etc. The passed argument contains the desired
remote text attribute as the low order byte, and the desired local
text attribute as the high order byte.
See IOLib.GetTextAttr for sample.
Function CHARREADY : boolean remote input ASYNC
CharReady returns true if there are any characters waiting in the
communications input buffer. This function is designed for
internal BOI usage only. You should use IOLib.PortKeyPressed in
your programs.
Procedure CHECKSECONDKEY input IOSUPP
- var char (scan code to check/character to return)
CheckSecondKey is used to interpret extended character codes
returned by the local keyboard. If the code is not processed, $00
is returned. You could use this structure to implement more SysOp
functions such as ChatMode, etc... This procedure is only called by
IOLib.ReadPortKey. Here is a list of default function keys
key function
[F2] toggle boi_statmode (user status line display mode)
[F7] decrease user's remaining time by one minute
[F8] increase user's remaining time by one minute
[F9] disconnect phone line and exit game with simulated line noise
[F10] exit game and return to BBS, notifying user of action
Procedure CLEANSTRING string IOLIB
- var string (string to process)
CleanString will remove all spaces from the beginning and end of a
string. See IOLib.StripString for more complete processing.
str := ' Test String ';
SendString('***' + str + '***',false); {'*** Test String ***'}
CleanString(str);
SendString('***' + str + '***',false); {'***Test String***'}
Procedure CLEARBUFFERS input IOLIB
ClearBuffers clears the input stream. It removes all characters
the local keyboard input buffer and the remote communications input
buffer. This procedure is helpful in limiting type ahead.
SendString('Continue? [Y/N] ',false);
ClearBuffers;
repeat inchar := UpCase(ReadPortKey)
until inchar in ['Y','N'];
Procedure CLEARINBUFFER remote input ASYNC
ClearInBuffer clears the communications input buffer, discarding any
characters waiting to be read. This procedure is designed for
internal BOI usage only. You should use IOLib.ClearBuffers in your
programs.
Procedure CLRPORTSCR graphics IOLIB
ClrPortScr clears the active display window on both local and
remote consoles. This procedure replaces Crt.ClrScr. If there is
a remote user, the user status line will be refreshed on the local
console.
Procedure CLRPORTEOL graphics IOLIB
ClrPortEOL blanks characters from the cursor to the right edge of
the screen. This procedure replaces Crt.ClrEOL.
Function DATHOF : pathstr door information DOORLIB
DatHOF returns the file name for the door's data Hall of Fame if the
door has a Hall of Fame. This value can be changed by calling
DoorLib.DL_SetValue.
Procedure DISPLAYTEXT file handling SUPPORT
- pathstr
DisplayText will display a formatted text file to the user. This
procedural allows users to pause (spacebar) or exit (escape) at any
time during the display. The formatting codes (as they stand now)
are thus:
The first seven (7) characters of each line of a DisplayText text
file are reserved for formatting information. Here is the header
layout: (Note: Windowing commands (W) don't follow the same format.)
byte legal values notes/meaning
1 + - C E B W other values indicate comment, line is ignored
2 none blank space
3 0..F color value passed to PortBackground(color)
4 0..F color value passed to PortColor(color,monochrome)
5 0..F reserved
6 0..F monochrome value passed to PortColor(color,mono)
7 none blank space
Any suggestions for extending the formatting codes, or fully
implementing the Windowing (W) directive are welcome. When I add
language support, I'll be adding labels with a colon ":" in the
first column.
Procedure DL_SETVALUE door information DOORLIB
- byte (index of value to change)
- pathstr (new value)
DL_SetValue allows the program (use extreme caution) to change
several door specific values. These are the values that are
compiled into DoorLib through DOORLIB.DAT.
index Function value
1 InfoFile File name of online instruction file
2 TxtHOF File name of text Hall of Fame file
3 DatHOF File name of data Hall of Fame file
4 LogFile File name of door's error/activity log file
5 DoorName Name by which the door refers to itself
6 Version string representation of Door's version number
Function DOORNAME : pathstr door information DOORLIB
DoorName returns the name that the door likes to call itself by.
This value can be changed by calling DoorLib.DL_SetValue.
Procedure DOTIMEOUT internal housekeeping IOLIB
- boolean (make noise indicator)
DoTimeOut is invoked if the remote user goes two minutes without
pressing the keyboard. It is also called in some circumstances if
carrier is lost. I do not recommend that your door call this
procedure. DoTimeOut halts program execution and invokes the
exit procedure chain.
Procedure DROPCARRIER communications ASYNC
DropCarrier will attempt to use DTR (Data Terminal Ready) to get
the modem to disconnect the phone. This procedure should be used
with extreme prejudice. This procedure should not be directly
called by your programs. If this is necessary you should build a
shell procedure and place it in IOLib.
Procedure ENDGAME hall of fame SUPPORT
- string (user designation (i.e. Players, Traders, Users, etc...)
- boolean (score is valid of HOF consideration)
- boolean (score is cash instead of points)
- boolean (higher scores are better than lower scores)
EndGame is supplied as a sample Hall of Fame handling routine. Most
of my games use this routine as is. Star Traders uses a modified
one that uses the numeric type comp for scores as well as tracking
two seperate Hall of Fames. This procedure will maintain a Hall of
Fame that contains the all time best score, the previous month's top
three scores, and the current month's top twenty. It will also
create a text version of the Hall of Fame that details the all time
best score, last month's top three, and this month's top ten. This
text Hall of Fame is ideal for one screen online bulletins.
Function EXIST : boolean file handling IOLIB
- pathstr (file to look for)
Exist tells whether or not a file is actually present or not. This
procedure should be used in conjunction with IOLib.Valid.
if Valid(filename) then
begin
if Exist(filename) then
DisplayText(filename)
else NotifySysOp(filename)
end
else { error handling }
Procedure GETSTRING input IOLIB
- var string (input string)
GetString returns all characters input both locally and from remote
up to, but not including the next carriage return. This effectively
replaces System.ReadLn for user input.
By utilizing the BOI system variable boi_nextchar, you can "push" a
character into this procedure. This allows you to have one prompt
that allows both hot keys and string input. See HiLo program for an
example of this technique.
Procedure GETTEXTATTR video IOLIB
- var word (remote and local text attributes)
GetTextAttr returns the current remote and local text attributes.
This is the BOI's replacement to Turbo Pascal's textattr variable.
The passed argument contains the desired remote text attribute as
the low order byte, and the desired local text attribute as the high
order byte. This procedure is usually used in conjunction with
IOLib.ChangeColor to save then restore a given set of text
attributes.
GetTextAttr(saveattribs);
{do something like write on user status line, changing color}
ChangeColor(saveattribs);
Function GETTIMER : boolean timing IOLIB
- var longint (base timer tick value)
- word (target number of seconds)
GetTimer returns true if val seconds have passed since the base
timer tick value was initialized (see IOLib.TimerSet). These two
procedures can be used for benchmarking, user inactivity timing,
etc...
Procedure GOTOPORTXY video IOLIB
- byte (x coordinate)
- byte (y coordinate)
GotoPortXY should be used instead of Turbo Pascal's GotoXY.
Function HEX : byte miscellaneous IOLIB
- char
Hex is used to convert hex character values "0".."9", "A".."F", and
"a".."f" into numeric values $0..$F. This procedure is used most
notibly by Support.DisplayText when decoding formatting codes.
Function INFOFILE : pathstr door information DOORLIB
InfoFile returns the name of the door's online instruction file.
This value can be changed by calling DoorLib.DL_SetValue.
Function INTINIT : byte communications ASYNC
IntInit checks game configuration (foss_init) and attempts to
install either the FOSSIL or internal asynchronious communications
routines. This Function returns zero (0) on success or thirty one
(31) on FOSSIL initialization failure. It also installs the
housekeeping routines necessary to automatically disengage
communications when the program ends. This function should not
be called under any circumstances by your program. You should
let IOLib.SetPort call it.
Function INTSTR : string string IOLIB
- longint (integer value to convert to a string)
- byte (minimum size of string)
IntStr returns a string of an integer value. Best utilized by
SendString for formatted (left or right justified) output. IntStr
replaces the numeric output syntax found in Write and WriteLn.
Replace
WriteLn('Result: ',integervalue:6);
with
SendString('Result: ' + IntStr(integervalue,6),true);
Function LEFTTIME : integer timing IOLIB
LeftTime returns the users current time remaining in minutes.
LeftTime rounds down. It returns -1 if time has expired.
Procedure LINEWRITE formatted display SUPPORT
- string (lstr : string;
- byte (color value to pass to PortColor(color,mono))
- byte (monochrome value to pass to PortColor(color,mono))
- boolean (indicate whether choice is currently valid)
LineWrite is designed to help create menu bars. The colors passed
are for the text. If the choice is valid, then the second character
in the string is highlighted (white). The sample onliner HiLo
demonstrates this procedure better than I can here. This procedure
is used by all of my online games.
Function LOGFILE : pathstr door information DOORLIB
LogFile returns the name of the door's error (and soon to also be
activity) file. This value can be changed by calling
DoorLib.DL_SetValue.
Function MAX : word miscellaneous IOLIB
- word
- word
Max returns the greater of two word values.
Function MAXL : longint miscellaneous IOLIB
- longint
- longint
MaxL returns the greater of two longint values.
Function MIN : word miscellaneous IOLIB
- word
- word
Min returns the lesser of two word values.
Function MINL : longint miscellaneous IOLIB
- longint
- longint
MilL returns the lesser of two longint values.
Procedure NOTIFYSYSOP file handling IOLIB
- pathstr
NotifySysOp sends a message to the user that a given file can not be
located. It asks the user to notify the SysOp so that the problem
can be fixed. This is usually used in conjunction with IOLib.Exist.
See IOLib.Exist for sample.
Function OPENFILE : word file handling IOLIB
- var file (file handle)
- word (record size)
- byte (file sharing mode)
- facctype (file access mode [reset/rewrite])
OpenFile is used to open non-text files. Since it utilizes untyped
files, you'll need to use BlockRead and BlockWrite to access the
information in the file. You need to give OpenFile a record size
(usually 1), a dos sharing mode (i.e. denynone+read_only), and
a file access mode (treset or trewrite). OpenFile returns IOResult
from the last attempt to open the file.
Assign(f,'roster.dat');
if Exist('roster.dat') then
OpenFile(r,SizeOf(rosterrec),denynone+read_only,treset);
BlockRead(r,rbuffer^,1,inread);
Function OPENTEXT : word file handling IOLIB
- var text (file handle)
- byte (file sharing mode)
- facctype (file acces mode [reset/append/rewrite]
OpenText is the text file version of OpenFile. There is no need to
specify record size, and there is the additional tappend file access
mode. OpenText returns IOResult from the last attempt to open the
file. See IOLib.OpenFile for sample.
Function PADSTR : string string IOLIB
- string (string to right justify)
- byte (minimum size of string)
PadStr returns a right justified version of the string it is sent.
PadStr is normally used with SendString to format output. PadStr
replaces the formatting syntax of Write and WriteLn.
Replace
WriteLn(namestr:26);
with
SendString(PadStr(namestr,26),true);
Procedure PORTBACKGROUND video IOLIB
- byte (background color)
PortBackground replaces Turbo Pascal's TextBackground. This
procedure will change color on both the local and remote screens.
Procedure PORTCOLOR video IOLIB
- byte (foreground color / color modes)
- byte (foreground color / monochrome modes)
PortColor allows for color/monochrome screen control. PortColor and
TextPortColor both replace Turbo Pascal's TextColor procedure.
PortColor allows you to program with different looks for both color
and monochrome modes.
Note: PortColor, TextPortColor, and PortBackground are all highly
optimized. They depend heavily on the variables boi_r_textattr, and
boi_l_textattr. If the BOI thinks that you are trying to change the
color to the color it thinks is set, these procedures will NOT do
anything. The advantages are that it greatly speeds up remote
video, and it allows the programmer more freedom in style. The one
caviat is that you must USE these procedures. Be very careful about
imbedding color codes into your text stream.
Procedure PORTCOLUMNONE video IOLIB
PortColumnOne is the equivalent of Crt.GotoPortXY(1,WhereY). It is
usually followed by a ClrPortEOL statement.
Function PORTKEYPRESSED : boolean input IOLIB
PortKeyPressed replaces Turbo Pascal's KeyPressed function. If
there is a key waiting either in the local keyboard buffer or the
communications input buffer, this function will return true.
Procedure PORTWINDOW video IOLIB
- byte (leftmost x coordinate of active window)
- byte (topmost y coordinate of active window)
- byte (rightmost x coordinate of active window)
- byte (bottommost y coordinate of active window)
PortWindow replaces TurboPascal's Window procedure. When declaring
the entire screen, I recommend using the system variable
boi_pagelength to be the last variable passed.
You should be careful with your screen layout. If your program will
requires a window that does not reach the right edge of the screen
that must be cleared at regular intervals, you need to be aware that
ANSI screen clearing will be tedious. You'll need to clear each and
every square manually. If, however, your window reaches the right
edge of the screen, clearing is much faster due to IOLib.ClrPortEOL.
Function PROGRAMSET : boolean door information DOORLIB
- char (command line switch character to test for validity)
This procedure is used by GetCmBBS.GetCommand to test alternate
command line switch characters for validity. This whole sequence
enables you to write doors that have some door specific command line
parameters. My game Madness' -t Tournament Mode switch is one
example and Path Finder's -t Trail Mode is another. I can think of
no reason for anything other than GetCommand to call ProgramSet.
Procedure QUERYUSER video initialization SUPPORT
- charset
QueryUser is used to prompt the player to tell what video graphics
mode they would like to use. You send QueryUser a set of characters
that correspond the choices you wish to enable.
"Q" Quit now. Halts the game
"1" ANSI color.
"2" ANSI monochrome.
"3" AVATAR/1 color. (recommend checking boi_allowavt)
"4" AVATAR/1 monochrome.
If the game is being played locally, the following two modes are
also available.
"C" direct color.
"M" direct monochrome.
I recommend that you use this procedure before any other. Many drop
files contain graphics information, but users are notorious for not
configuring their BBS account to what they actually have. Back when
I used to log on at 1200 bps, I usually told the BBS that I did not
have ANSI capability because I did not want to sit through the ANSI
menus. However, I was more than happy to play the ANSI games.
Function READBUFFER : char remote input ASYNC
ReadBuffer returns the next character from the input buffer. This
should only be called if Async.CharReady returns true. If there is
no character waiting, and ReadBuffer is called, it will return #00.
This procedure should not be called directly by your program. You
should use IOLib.ReadPortKey instead.
Function READPORTKEY : char input IOLIB
ReadPortKey returns the next waiting character from either the local
keyboard buffer or the port input buffer. This function replaces
Turbo Pascal's ReadKey. This behaves like ReadKey except that
extended codes (from the local keyboard) are not pushed into the
input buffer. They are passed processed in the background by
IOSupp.CheckSecondKey. ReadPortKey will wait until a character is
pressed. You may want to use it in conjunction with PortKeypressed.
If this routine detects no remote activity for two minutes, it will
call IOLib.DoTimeOut and the program will terminate.
Function REALSTR : string string IOLIB
- real (real value to convert into a string)
- byte (minimum size of string)
- byte (number of digits to right of the decimal)
RealStr returns a right justified string version fo the real value
it is sent. RealStr is normally used with SendString to format
output. RealStr replaced the formatting syntax of real values with
Write and WriteLn.
Replace
WriteLn(realnum:6:2);
with
SendString(RealStr(realnum,6,2),true);
Procedure RESETPORTXY video/positional IOLIB
ResetPortXY restores the screen location of the cursor that was
saved by a call to IOLib.SetPortXY. See SetPortXY for more info.
Procedure SENDCHAR remote output ASYNC
- char (character to send to remote)
SendChar sends a character to the communications port. This
procedure should not be called directly. You should use either
IOLib.SendString or IOLib.SendRemote instead. If SendChar detects
that carrier has been lost, it will initiate the programs exit
procedure chain.
Procedure SENDLOCAL internal output IOLIB
- string (characters to output to local console)
SendLocal will send anything it is sent to the local console. This
routine is meant for internal BOI use. I recommend against calling
it from within your door.
Procedure SENDREMOTE internal output IOLIB
- string (characters to send to remote console)
SendRemote will send anything it is sent to the remote console. This
routine is meant for internal BOI use. I recommend against calling
it from within your door. If you wish to supress local console
echoing, set the variable boi_echo to false and use SendString.
Procedure SENDSTRING output IOLIB
- string (string to output)
- boolean (send a carriage return/linefeed indicator)
SendString replaces Turbo Pascal's Write and WriteLn output
procedures (for consoles). This is the main output procedure.
For formatting output see IntStr, PadStr, and RealStr.
Procedure SETBUFFERSIZE remote input ASYNC
- integer (new circular input buffer size [2..1024])
SetBufferSize allows you to change the remote "type ahead" buffer.
A call to SetBufferSize will also erase anything currently in the
input buffer. SetBufferSize will accept values from 2 to 1024
(default). I recommend against any calls to this procedure.
Procedure SETLOCALGRAPHMODE video IOLIB
- boi_grmode (new graphics mode [ASCII,ANSI,AVATAR,CRT]
SetLocalGraphMode should be used to change the local graphics mode.
When switching graphics modes, certain values need to be
initialized. This procedure will take care of the housekeeping.
Function SETPORT : byte; communications IOLIB
SetPort initializes BOI communications. This function should be
used to access the communications routines in Async. This function
is called by GetCmBBS.GetCommand. On the first call to SetPort,
SetPort calls Async.IntInit and returns the value that IntInit
returns to it. On subsequent calls, SetPort does nothing but
return $FF (255).
Procedure SETPORTXY video/positional IOLIB
SetPortXY and ResetPortXY are used in tandem to save a given cursor
postition then restore it later. Use of this pair should replace
the local programming paradigm of calling WhereX and WhereY, saving
the temp values, then using GotoXY to move around. In a future
version of the BOI, I may try to track remote screen position.
Procedure SETTEXTATTR internal video IOLIB
- word (attributes to set)
SetTextAttr is provided merely as a complement to GetTextAttr and
ChangeColor. This procedure allows you to tell the BOI that the
text attributes are something other than what the BOI thinks they
are. If you need to use this procedure, I recommend that you
reconsider your programming techniques.
Procedure STRIPSTRING string IOLIB
- var string (string to process)
- charset (set of characters to remove from string)
StripString is provided as a simple way to remove unwantedd
characters from a string. This is more comprehensive than the
procedure CleanString.
str := ' Test String ';
SendString('***' + str + '***',false); "*** Test String ***"
StripString(str);
SendString('***' + str + '***',false); "***TestString***"
Procedure TEXTPORTCOLOR video IOLIB
- byte (color to set following text to)
TextPortColor and PortColor both replace Turbo Pascal's TextColor
procedure. This procedure is a direct replacement. If you want
to take color/monochrome modes into account, see PortColor.
Procedure TIMERSET timing IOLIB
- var longint (base initialized value)
TimerSet initializes basetime to the current timer tick value. This
value can then be sent to GetTimer as a test to see if a certain
number of timer ticks (18.2 per second) have elapsed.
Function TXTHOF : pathstr door information DOORLIB
TxtHOF returns the file name for the door's text Hall of Fame if the
door has a Hall of Fame. This value can be changed by calling
DoorLib.DL_SetValue. Be careful changing this. Changing this can
interfere with the BOI's /Y command line parameter. Support.EndGame
uses the system variable boi_texthof that contains a complete path
and file name (from GetCmBBS.GetCommand).
Procedure UPDATESTATLINE sysop IOLIB
If there is a remote user, calls to UpdateStatLine will refresh
the User Status Line. The displayed line information can be
toggled by the SysOp pressing [F2]. The display mode can also be
changed directly by setting boi_statmode. UpdateStatLine also
maintains a timer value of the last time it was called, boi_smtime,
so that you can space out calls to the status line.
Function VALID : boolean file handling IOLIB
- pathstr (filespec to verify)
Valid tells whether or not a given path/filespec is a valid DOS
filename. This function should be used before attempting to open
any user named files. See IOLib.Exist for more.
Function VERSION : pathstr door information DOORLIB
Version returns the door's current version number. This value can
be changed by calling DoorLib.DL_SetValue.
Function WRITECOPY : boolean housekeeping SUPPORT
- boolean (do we ask if they want instructions?)
WriteCopy is the door and interface's copyright notice screen. It
also indicates to the player whether or not the game has been
registered. You can have WriteCopy prompt the player to indicate
if they wish to read the online instructions. WriteCopy will
return true if they do. All of my doors call this immediately
after calling Support.QueryUser.
-----
Unit Async Internals
Function IntInit public procedure ASYNC
Procedure ASYNCINIT communications ASYNC
AsyncInit is called by IntInit if the internal communication
routines are used. AsyncInit installs and activates the
interrupt handler Async.AsyncInt. It als inserts Async.AsyncEnd
into the exit procedure chain.
Procedure FOSSILINIT communications ASYNC
FOSSILInit is called by IntInit if FOSSIL communications routines
are used. FOSSILInit initialized the FOSSIL and inserts
Async.FOSSILEnd into the exit procedure chain
Procedure ASYNCEND exit procedure ASYNC
AsyncEnd, which is installed by Async.IntInit.AsyncInit, restores
the communication interrupt handler to its original state.
Procedure FOSSILEND exit procedure ASYNC
FOSSILEnd, which is installed by Async.IntInit.FOSSILInit,
deinitializes the FOSSIL driver.
-----
Unit BOIDecl Internals
Procedure CALLOLDINT interrupt handling BOIDECL
CallOldInt allows BOIInt08h to chain to the previous timer
interrupt.
Procedure BOIINT08H interrupt interrupt handler BOIDECL
BOIInt08h is the BOI's timer ISR.
Procedure NULLPROC empty procedure BOIDECL
Procedure DV_WAIT timing BOIDECL
Used to give time slices back to DESQview.
Procedure DV_CRIT interrupt handling BOIDECL
Used to tell DESQview not to switch away.
Procedure DV_SAFE interrupt handling BOIDECL
Used to let DESQview know that it is safe to switch away.
Function CHECKDV : boolean initialization BOIDECL
Used to determine if DESQview is present, and, if so, initialize
certain BOI system values.
Procedure MS_WAIT timing BOIDECL
Used to give time slices back to MS Windows.
Procedure WIN_CRIT interrupt handling BOIDECL
Used to tell MS Windows not to switch away.
Procedure WIN_SAFE interrupt handling BOIDECL
Used to let MS Windows know that it safe to switch away.
Function CHECKWINDOZE : boolean initialization BOIDECL
Used to determine if MS Windows is present, and, if so, initialize
certain BOI system values.
Procedure DOS_IDLE timing BOIDECL
Used to give time back to other processes.
Procedure CHECKDOSVERS initialization BOIDECL
Used to determine what DOS, OS/2 DOSbox version is present and to
initialize certain BOI system values.
Procedure SETINDOS initialization BOIDECL
Used to set the InDOS flag pointer. This allows processes to
determine when DOS is re-entrant.
Procedure BOIEXIT exit procedure BOIDECL
BOIDecl exit procedure.
Unit BOIDECL initialization BOIDECL
-----
Unit DoorLib Internals
Procedure CHECKENVIRONMENT initialization DOORLIB
Used to look for BOILOG environment variable, which is not presently
documented. It is present in anticipation of the expanded activity
logging of the next public release.
Unit DOORLIB initialization DOORLIB
-----
Unit GetCmBBS Internals
Procedure GETCOMMAND initialization GETCMBBS
Reads and process the command line parameters. Reads and processes
the BBS drop file.
Procedure SHOWERROR error handling GETCMBBS
Displays initialization error.
Procedure WRITEERROR error handling GETCMBBS
Used to format display of ShowError.
Procedure SETGAMETIME timing GETCMBBS
Used to normalize user's time remaining.
Procedure FINDDROPFILE file handling GETCMBBS
Used to locate BBS drop file.
Procedure PROCESSTEXT file handling GETCMBBS
Used to process BBS drop files in text format (CRLF delimited).
Procedure RESTART file handling GETCMBBS
Used to retrieve a specified line from drop file.
Procedure DORBBS drop file processing GETCMBBS
Used to obtain additional information from RBBS dropfile.
Procedure DOWWIV drop file processing GETCMBBS
Used to obtain additional information from WWIV dropfile.
Procedure DOSPITFIRE drop file processing GETCMBBS
Used to obtain additional information from Spitfire dropfile.
Procedure DOWILDCAT drop file processing GETCMBBS
Used to obtain additional information from WildCat! dropfile.
Procedure DO2AM drop file processing GETCMBBS
Used to obtain additional information from 2 A.M. dropfile.
Procedure DOPHOENIX drop file processing GETCMBBS
Used to obtain additional information from Phoenix dropfile.
Procedure PROCESSFILE file handling GETCMBBS
Used to process BBS drop files in binary format.
Procedure DOOPUS114 drop file processing GETCMBBS
Used to obtain additional information from Opus 1.14 dropfile.
Procedure DOPCBOARD12 drop file processing GETCMBBS
Used to process PCBoard 12.x format drop files.
Procedure DOSEARCHLIGHT initialization GETCMBBS
Used to notify BOI that BBS is passing all arguments via command
line.
Procedure GETCOMPORT communications GETCMBBS
Used to process user specified com port.
Procedure GETIRQINFO communications GETCMBBS
Used to process user specified IRQ/port address.
Procedure GETHOFLIM hall of fame GETCMBBS
Used to process Hall of Fame limiting value.
Procedure GETHOF hall of fame GETCMBBS
Used to process new text Hall of Fame path/filespec
Procedure GETTIMELIMIT timing GETCMBBS
Used to process absolute maximum time limit.
Procedure DOPORTS communications GETCMBBS
Used to normalize com port values.
Procedure GETAGAIN timing GETCMBBS
Used to process replay time value.
Procedure GETNAME user information GETCMBBS
Used to process user's name.
Procedure GCEXIT exit procedure GETCMBBS
GetCmBBS exit procedure.
Unit GETCMBBS initialization GETCMBBS
-----
Unit IOLib Internals
Function AVSTR : string output IOLIB
AVATAR/1 string generator
Procedure IOEXIT exit procedure IOLIB
IOLib exit procedure.
Unit IOLIB initialization IOLIB
-----
Unit Key Internals
Procedure GETREG registration KEY
Registration key processor.
Unit KEY initialization KEY
-----
Unit Support Internals
Procedure QueryUser public procedure SUPPORT
Procedure QUERYCHOICE initialization SUPPORT
Procedure SETVALUES initialization SUPPORT
Procedure EndGame public procedure SUPPORT
Function HOFCHECK : boolean hall of fame SUPPORT
Function GOODSCORE : boolean hall of fame SUPPORT
Function BETTERSCORE : boolean hall of fame SUPPORT
END BOI Procedure and Function Library